package com.briup.smartcity_group1.service;

import com.briup.smartcity_group1.bean.basic.Comment;
import com.github.pagehelper.PageInfo;
import com.briup.smartcity_group1.exception.ServiceException;

/**
 * 评论模块相关接口
 * @author WangChen
 * @date 2023/1/6 2:32
 */
public interface ICommentService {

    /**
     * 审核评论
     * 通过修改评论状态实现,状态：0-待审核，1-不通过，2-通过
     * @param id        评论信息id
     * @param status    评论状态
     * @throws ServiceException 待处理数据不存在;期望之外的状态
     */
    void checkComment(int id,int status);

    /**
     * 分页查询所有评论
     * 通过关键词分页对查询评论模糊查询
     *
     * @param pageNum   页码
     * @param pageSize  页面大小
     * @param keywords  查询用关键字
     * @return 存放当前页评论信息的列表
     */
    PageInfo<Comment> pageQuery(int pageNum, int pageSize, String keywords);

    /**
     * 通过id级联删除评论
     * 当评论信息作为父id时，删除评论信息需要将其对应的子评论信息删除
     *
     * @param id 评论信息id
     */
    void deleteById(int id);

    /**
     * 通过数组批量删除多个评论信息
     *
     * @throws ServiceException 待批处理数据中有部分数据不存在;
     *                          待批处理数据全不存在;
     */
    void batchDelete(int[] ids);
}